﻿
// var HOST_URL = 'http://192.168.121.26:8088/static/eschool/';
// var HOST_URL = 'http://test.newexue.juziwl.cn'; // 测试服链接地址
var HOST_URL = 'http://test.newexue.juziwl.cn'; // 测试服链接地址
// var HOST_URL = 'http://www.jzexueyun.com'; // 正式服链接地址
// var PRE_API = 'http://192.168.121.95:8084'; // 连接最终地址
var PRE_API = 'http://test.exue.juziwl.cn'; // 测试API最终地址
// var PRE_API = 'http://api.exue.jzexueyun.com'; // 正式服API连接最终地址
var ARI_API = 'http://test.family.juziwl.cn';
// var ARI_API = 'http://api.family.jzexueyun.com'; // 正式服API连接最终地址

String.prototype.queryURLParameter = function queryURLParameter() {
    var obj = {},
        reg = /([^?=&]+)=([^?=&]+)/g;
    this.replace(reg, function() {
        obj[arguments[1]] = arguments[2];
    });
    return obj;
};
Date.prototype.format = function(format) {
    var o = {
        'M+': this.getMonth() + 1, // month 
        'd+': this.getDate(), // day 
        'h+': this.getHours(), // hour 
        'm+': this.getMinutes(), // minute 
        's+': this.getSeconds(), // second 
        'q+': Math.floor((this.getMonth() + 3) / 3), // quarter 
        'S': this.getMilliseconds() // millisecond 
    }
    if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
    }
    for (var k in o) {
        if (new RegExp('(' + k + ')', 'i').test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));
        }
    }
    return format;
}
var transId = ''; 
// 全局设置ajax heder
function ajaxHeader() {
    function getRandom(n,m){
        n = Number(n);    //强制转换成数字
        m = Number(m);
        if (isNaN(n)||isNaN(m)) {    //判断是否为有效数字 ，其中一个不是有效数字就返回[0,1)之间的随机小数
            return math.random();
        }
        if (n > m) {     //如果n>m则交换
            var temp=n;
            n=m;
            m=temp;
        }
        return Math.round(Math.random()*(m-n)+n);
    }
    function getSixNo(){
        var arr=[];
        for (var i=0;i<6;i++){
            arr.push(getRandom(0,9)); // 0-9之间的随机数
        }
        return arr.join('');
    }
    var config = {
        headers:{}
    };
    var servCode = 'exueyunServ';
    var randNum = getSixNo(); //6位随机码
    var realTime = new Date().format('yyyyMMddhhmmss'); //流水号前面的时间 格式：yyyyMMddHHmmss
    var sendTime = new Date().format('yyyy-MM-dd hh:mm:ss'); //消息发送时间，必填，格式为：yyyy-MM-dd HH:mm:ss
    transId = realTime + randNum; //唯一消息流水号，必填，格式为：yyyyMMddHHmmss+6位随机码 隐藏规则:对于同一客户端类型且同一ip的同一个用户, 如果请求一直是一样的yyyyMMddHHmmss, 则认为是不合法的请求 
    /**
     * 例如:
     * SERVCODE: exueyunServ
     * TRANSID: 20180517125812ui234h
     * 则以"exueyunServ20180517125812ui234h"生成MD5码
     */ 
    var sysSign = servCode + transId;
    sysSign = hex_md5(sysSign);
    /**
     * 请求的消息头(header)添加SENDER,RECEIVER,TIME,SERVCODE,MSGTYPE,TRANSID,VERSION,SYSSIGN
     * by cuihd 2018-05-22
     */
    config.headers['SENDER'] = 'exueyun'; //消息发送方，必填，为：exueyun
    config.headers['RECEIVER'] = servCode; //消息接收方，必填，为：exueyunServ
    config.headers['TIME'] = sendTime; //消息发送时间，必填，格式为：yyyy-MM-dd HH:mm:ss
    config.headers['SERVCODE'] = servCode; //服务编码，必填. 为：exueyunServ        
    config.headers['MSGTYPE'] = 'request'; //消息类型，必填, 为：request      
    config.headers['TRANSID'] = transId; //唯一消息流水号，必填，格式为：yyyyMMddHHmmss+6位随机码 隐藏规则:对于同一客户端类型且同一ip的同一个用户, 如果请求一直是一样的yyyyMMddHHmmss, 则认为是不合法的请求    
    config.headers['VERSION'] = '2.0'; //协议版本号，默认:2.0
    config.headers['SYSSIGN'] = sysSign; //鉴权，32字节的MD5字符串。生成方式：32位的MD5（ServCode+ TransId）注：将消息头中的服务编码和消息流水号拼接后用MD5加密。
    config.headers['clientType'] = '1:2'; //为了统计在线用户的信息，客户端类型:登录用户的身份类型 2老师
    config.headers['Content-type'] = 'application/json';
    // config.headers['AccessToken'] =  $.cookie('accessToken');
    return  config.headers;
};

function getQueryString(name) {
	window.location.href.replace(/%27/g, "'");
	var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
	var r = window.location.search.substr(1).match(reg);
	if (r != null) {
		return decodeURIComponent(r[2]);
	}
	return null;
}
function myAjax(type, url, func, data) {
	$.ajax({
		type:type, // 提交方式
		url:url, // 路径
		dataType: 'json', // 服务器返回数据的类型
        headers:  ajaxHeader(),
        data: encrypt(JSON.stringify(data)),
		success: function(result) {
			
			if (result['status'] == 200) {
				func(result['content']);
				if (getQueryString('cateId')){
					pageNum = Math.ceil(result['content'].pagination.total / result['content'].pagination.rows) // 总页数 
					// console.log(pageNum,'pageNum') 
				}
			}
		},
		error: function(e) {
			//  console.log(e)
		}
	});
}

// 解密的key
function newKey(){     
    var randNum = getSixNo(); //6位随机码
    var realTime = new Date().format('yyyyMMddhhmmss');
    var transId = realTime + randNum; 
         
    return newKey;
}

function encrypt (data, flag) {
        // flag true 加密
        if(typeof flag != 'undefined') {
            return data;
        }
        var key = String(transId).substring(4);  
        key = CryptoJS.enc.Utf8.parse(key);
        var cipher = CryptoJS.AES.encrypt(data, key, { 
            mode: CryptoJS.mode.ECB,
            padding: CryptoJS.pad.Pkcs7  // 后台用的是pad.Pkcs5,前台对应为Pkcs7       
        }); 
        return CryptoJS.enc.Base64.stringify(cipher.ciphertext);
    
};